package org.jeecg.common.util;


import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;

public class WatermarkExampleChatGPT {
    public static void main(String[] args) {
        try {
            // 读取原始图片。文件默认为Idea的首层目录下
            File originalImageFile = new File("original_image.jpg");
            BufferedImage originalImage = ImageIO.read(originalImageFile);

            // 创建带有水印的图片副本
            BufferedImage watermarkedImage = new BufferedImage(originalImage.getWidth(), originalImage.getHeight(), BufferedImage.TYPE_INT_RGB);
            Graphics2D graphics = watermarkedImage.createGraphics();

            // 在图片上绘制原始图片
            graphics.drawImage(originalImage, 0, 0, null);

            int sign = 2;

            // 设置水印文本样式
            Font font = new Font("Arial", Font.BOLD, 36 * sign);
            Color color = new Color(255, 3, 3, 128);
            graphics.setFont(font);
            graphics.setColor(color);

            // 添加水印文本 Watermark
            String watermarkText = "2021-10-08 16:57:00";
            int x = 20 * sign;
            int y = watermarkedImage.getHeight() - 20 * sign;
            graphics.drawString(watermarkText, x, y);

            // 保存带有水印的图片
            File watermarkedImageFile = new File("watermarked_image.jpg");
            ImageIO.write(watermarkedImage, "jpg", watermarkedImageFile);

            System.out.println("Watermark added successfully.");
        } catch (Exception e) {
            System.out.println("Error: " + e.getMessage());
        }
    }
}

在上述代码中，我们首先读取原始的图片文件，然后创建一个与原始图片大小相同的BufferedImage对象作为带有水印的图片副本。
然后，我们通过Graphics2D对象绘制原始图片，并设置水印文本的样式（字体、颜色等）。
最后，在指定的位置上添加水印文本，并将带有水印的图片保存到文件中。
请注意，你需要将示例代码中的"original_image.jpg"替换为你自己的原始图片路径，以及将"watermarked_image.jpg"替换为保存带有水印的图片的路径。
另外，你也可以根据需要自定义水印文本的样式和位置。
希望这个示例能帮助你实现图片加水印的功能。